Bachelor of Science in Computer Engineering
Computer Engineering
Bachelor of Science Degree
- RIT/
- RIT Dubai/
- Academics and Learning/
- Undergraduate Degrees/
- Bachelor of Science in Computer Engineering
Accredited by the
United Arab Emirates
Ministry of Higher Education and Scientific Research
With RIT’s computer engineering BS, you’ll design hardware, components, and software for next-generation products, including autonomous vehicles and wearables.
Overview
In the computer industry, there is a great demand for computer engineers who can do it all—from designing high-performance computer hardware components and software to developing next-generation intelligent, resilient, and sustainable products and appliances that contain embedded systems.
Comprehensive Curriculum
RIT Dubai’s Bachelor of Science in Computer Engineering provides a strong foundation in mathematics, science, and engineering principles while equipping students with the technical expertise needed to solve complex computing challenges.
Students build essential knowledge through courses in:
- Data Structures
- Object-Oriented Programming
- Circuits and Electronics
- Principles of Software Engineering
Advanced coursework focuses on the integration of hardware and software systems through subjects such as:
- Computer Architecture
- Digital Systems Design
- Hardware and Software Interfacing
- Computer Networks
- Digital Signal Processing
Specialized Areas of Study
Students can further customize their learning through concentration areas that provide in-depth expertise in emerging fields of computer engineering, including:
- Software Engineering
- High-Performance Computing
- Computer Architecture
- Integrated Circuits and Systems
- Networks and Cybersecurity
- Computer Vision and Machine Intelligence
- Signal Processing, Control, and Embedded Systems
These concentrations also offer excellent opportunities for students interested in undergraduate research and innovation alongside faculty experts.
Experiential Learning
Hands-on learning is a cornerstone of the computer engineering program. Students gain practical experience through research opportunities, laboratory work, and a two-semester Senior Design Capstone project.
Senior Design Capstone
In their final year, students work in multidisciplinary teams comprising peers from various engineering disciplines, including biomedical, computer, electrical, industrial, and mechanical engineering. Teams collaborate on real-world projects sponsored by industry partners, community organizations, faculty members, or proposed by students themselves.
Through this experience, students develop technical expertise, project management capabilities, teamwork and leadership skills, and the ability to effectively communicate engineering solutions to diverse audiences. The capstone project serves as a culminating experience that prepares graduates to address real-world engineering challenges with confidence and creativity.
Typical Job Titles
| Computer Engineer | Semiconductor Engineer | Electrical Engineer |
| Firmware Engineer | Embedded Software Engineer | Test Automation Engineer |
| Manufacturing Engineer | Quality Engineer | Project Engineer |
| Sales Engineer | Hardware Engineer | Hardware Verification Engineer |
| Verification Engineer |
Industries
Aerospace
AI & Automation
Computer Networking
Secure Systems
Electronic and Computer Hardware
Government
Internet and Software
Smart Systems
Mission Statement
The mission of the Computer Engineering undergraduate program is to produce graduates with the appropriate hardware and software skill sets and experiential education who will have an immediate impact in the workforce, pursue graduate studies, and embrace life-long learning. The program also prepares graduates to adapt to technological changes, create significant individual and industrial growth opportunities, and practice the profession with a social conscience.
Program Educational Objectives
- Career Focus: Graduates successfully contribute to the professional workforce typically by applying their knowledge in various areas of computer engineering related to hardware, software and/or systems.
- Graduate Study: Many graduates have pursued, are pursuing, or plan to pursue graduate study in computer engineering, related disciplines or business.
- Independent Learning: Graduates are engaged in lifelong learning and stay current with advancements in their chosen "eld through independent learning and/or continuing education.
- Professionalism: Graduates conduct themselves in a professional and ethical manner and function as responsible members of society.
Program Learning Outcomes
- Complex Engineering Problems: Identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
- Engineering Design: Apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
- Communication: Communicate effectively with a range of audiences.
- Ethical & Professional: Recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts.
- Teamwork: Function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.
- Experiments & Data: develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
- Independent Learning: acquire and apply new knowledge as needed, using appropriate learning strategies.
- Experiential Learning: Acquired experiential education (through co-op) related to the broader area of computer engineering.
Curriculum
Typical Course Sequence
Total Credit Hours - 129
| Course | Sem. Cr. Hrs. | |
|---|---|---|
| First Year | ||
| CMPE-110 |
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills.
|
1 |
| CSCI-141 |
Computer Science I
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
|
4 |
| MATH-181 |
Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals.
|
4 |
| YOPS-010 |
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies.
|
0 |
| CMPE-160 |
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools.
|
3 |
| CSCI-142 |
Computer Science II
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
|
4 |
| MATH-182 |
Calculus II
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates.
|
4 |
| PHYS-211 |
University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| General Education – First Year Writing (WI) | 3 | |
| General Education – Elective | 3 | |
| General Education – Artistic Perspective | 3 | |
| General Education – Social Perspective | 3 | |
| Second Year | ||
| CMPE-250 |
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered.
|
3 |
| SWEN-261 |
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class.
|
3 |
| MATH-219 |
Multivariable Calculus
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics.
|
3 |
| MATH-190 |
Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems.
|
3 |
| PHYS-212 |
University Physics II
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| EGEN-099 |
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed.
|
0 |
| CMPE-260 |
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification.
|
4 |
| MATH-231 |
Differential Equations
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms.
|
3 |
| MATH-241 |
Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course.
|
3 |
| EEEE-281 |
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software.
|
3 |
| General Education – Ethical Perspective | 3 | |
| Third Year | ||
| CMPE-350 |
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory.
|
3 |
| CMPE-380 |
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation.
|
3 |
| EEEE-380 |
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior.
|
3 |
| EEEE-282 |
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections.
|
3 |
| CMPE-499 | Co-op | 0 |
| Open Elective | 3 | |
| Fourth Year | ||
| CMPE-550 |
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design.
|
3 |
| CMPE-480 |
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises.
|
3 |
| CMPE-460 |
Interface and Digital Electronics
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits.
|
4 |
| MATH-251 |
Probability and Statistics
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications.
|
3 |
| CMPE-499 | Co-op | 0 |
| General Education – Immersion (1) | 3 | |
| Fifth Year | ||
| EGEN-497 |
Multidisciplinary Senior Design 1
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| CMPE-570 |
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching.
|
3 |
| EGEN-498 |
Multidisciplinary Senior Design 2
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| Open Elective | 6 | |
| Professional Elective 1 | 3 | |
| Professional Elective 2 | 3 | |
| General Education – Immersion (2) | 3 | |
| General Education – Global Perspective | 3 | |
| General Education – Immersion (3) | 3 | |
BS Computer Engineering – AI Systems Option
| Course | Sem. Cr. Hrs. | |
|---|---|---|
| First Year | ||
| CMPE-110 |
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills.
|
1 |
| CSCI-141 |
Computer Science I
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
|
4 |
| MATH-181 |
Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals.
|
4 |
| YOPS-010 |
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies.
|
0 |
| CMPE-160 |
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools.
|
3 |
| CSCI-142 |
Computer Science II
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
|
4 |
| MATH-182 |
Calculus II
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates.
|
4 |
| PHYS-211 |
University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| General Education – First Year Writing (WI) | 3 | |
| General Education – Elective | 3 | |
| General Education – Artistic Perspective | 3 | |
| General Education – Social Perspective | 3 | |
| Second Year | ||
| CMPE-250 |
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered.
|
3 |
| SWEN-261 |
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class.
|
3 |
| MATH-219 |
Multivariable Calculus
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics.
|
3 |
| MATH-190 |
Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems.
|
3 |
| PHYS-212 |
University Physics II
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| EGEN-099 |
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed.
|
0 |
| CMPE-260 |
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification.
|
4 |
| MATH-231 |
Differential Equations
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms.
|
3 |
| MATH-241 |
Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course.
|
3 |
| EEEE-281 |
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software.
|
3 |
| General Education – Ethical Perspective | 3 | |
| Third Year | ||
| CMPE-350 |
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory.
|
3 |
| CMPE-380 |
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation.
|
3 |
| EEEE-380 |
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior.
|
3 |
| EEEE-282 |
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections.
|
3 |
| CMPE-371 |
Introduction to Generative AI (CMPE Option Core)
This course offers a comprehensive introduction to generative AI, covering its evolution from foundational AI techniques to modern advancements in deep learning. Students will explore key breakthroughs in neural networks that have enabled the development of cutting-edge generative models, including large language models (LLMs) such as ChatGPT, which are transforming fields like natural language processing, content generation, and AI-assisted coding. The course also delves into diffusion models, which are used for high-quality image generation and manipulation. Emphasizing both theoretical concepts and hands-on practice, students will learn core techniques such as model training, optimization, and debugging, while gaining practical experience in applying generative models to real-world problems. By the end of the course, students will have the knowledge and skills to develop, fine-tune, and implement generative AI models, preparing them to engage with the latest advancements in AI technology.
|
3 |
| CMPE-499 | Co-op | 0 |
| Fourth Year | ||
| CMPE-550 |
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design.
|
3 |
| CMPE-480 |
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises.
|
3 |
| CMPE-460 |
Interface and Digital Electronics
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits.
|
4 |
| MATH-251 |
Probability and Statistics
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications.
|
3 |
| CMPE-499 | Co-op | 0 |
| General Education – Immersion (1) | 3 | |
| Fifth Year | ||
| EGEN-497 |
Multidisciplinary Senior Design 1
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| CMPE-570 |
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching.
|
3 |
| EGEN-498 |
Multidisciplinary Senior Design 2
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| CMPE Professional Elective | 3 | |
| CMPE Option Elective 1 | 3 | |
| General Education – Immersion (2) | 3 | |
| CMPE Option Elective 2 | 3 | |
| Open Elective | 3 | |
| General Education – Global Perspective | 3 | |
| General Education – Immersion (3) | 3 | |
BS Computer Engineering – Secure Systems Option
| Course | Sem. Cr. Hrs. | |
|---|---|---|
| First Year | ||
| CMPE-110 |
Introduction to Computer Engineering
This course overviews the field of computer engineering, the computer engineering curriculum at RIT, and research and career opportunities. The topics covered include basic circuit analysis, number systems, digital logic, programming, robotics, laboratory equipment, teamwork, critical thinking, technical writing, modern and contemporary issues, ethics, diversity, and communication skills.
|
1 |
| CSCI-141 |
Computer Science I
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
|
4 |
| MATH-181 |
Calculus I
This is the first in a two-course sequence intended for students majoring in mathematics, science, or engineering. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers functions, limits, continuity, the derivative, rules of differentiation, applications of the derivative, Riemann sums, definite integrals, and indefinite integrals.
|
4 |
| YOPS-010 |
RIT 365: RIT Connections
RIT 365 students participate in experiential learning opportunities designed to launch them into their career at RIT, support them in making multiple and varied connections across the university, and immerse them in processes of competency development. Students will plan for and reflect on their first-year experiences, receive feedback, and develop a personal plan for future action in order to develop foundational self-awareness and recognize broad-based professional competencies.
|
0 |
| CMPE-160 |
Digital System Design I
This course covers the specification, analysis, modeling and design of digital systems. Standard modules, such as decoders, multiplexers, shifter registers, adders, and counters, will be analyzed. Lectures will discuss fundamental design methodologies, state machines, and digital system modeling with the use of VHDL as a hardware description language. The laboratory provides hands-on experiences of the design, modeling, implementation, and testing of digital systems using commercial IC components as well as CAD tools.
|
3 |
| CSCI-142 |
Computer Science II
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
|
4 |
| MATH-182 |
Calculus II
This is the second in a two-course sequence. It emphasizes the understanding of concepts, and using them to solve physical problems. The course covers techniques of integration including integration by parts, partial fractions, improper integrals, applications of integration, representing functions by infinite series, convergence and divergence of series, parametric curves, and polar coordinates.
|
4 |
| PHYS-211 |
University Physics I
This is a course in calculus-based physics for science and engineering majors. Topics include kinematics, planar motion, Newton's Laws, gravitation, work and energy, momentum and impulse, conservation laws, systems of particles, rotational motion, static equilibrium, mechanical oscillations and waves, and data presentation/analysis. The course is taught in a workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| General Education – First Year Writing (WI) | 3 | |
| General Education – Elective | 3 | |
| General Education – Artistic Perspective | 3 | |
| General Education – Social Perspective | 3 | |
| Second Year | ||
| CMPE-250 |
Assembly and Embedded Programming
This course introduces embedded systems, along with fundamental computer organization, assembly language programming, and mixed language programming with C and assembly. Using a modern microcontroller and embedded systems IDE, such as the ARM Cortex-M0+ and Keil Microcontroller Development Kit, the course covers embedded programming concepts and interface modules, as well as addressing methods, machine instructions, assembler directives, macro definitions, code relocatability, subroutine linkage, data structures, I/O programming, exception processing, and interrupts. Program design techniques necessary to write efficient, maintainable device drivers are considered.
|
3 |
| SWEN-261 |
Introduction to Software Engineering
An introductory course in software engineering, emphasizing the organizational aspects of software development and software design and implementation by individuals and small teams within a process/product framework. Topics include the software lifecycle, software design, user interface issues, specification and implementation of components, assessing design quality, design reviews and code inspections, software testing, basic support tools, technical communications and system documentation, team-based development. A term-long, team-based project done in a studio format is used to reinforce concepts presented in class.
|
3 |
| MATH-219 |
Multivariable Calculus
This course is principally a study of the calculus of functions of two or more variables, but also includes the study of vectors, vector-valued functions and their derivatives. The course covers limits, partial derivatives, multiple integrals, and includes applications in physics.
|
3 |
| MATH-190 |
Discrete Mathematics for Computing
This course introduces students to ideas and techniques from discrete mathematics that are widely used in Computer Science. Students will learn about the fundamentals of propositional and predicate calculus, set theory, relations, recursive structures and counting. This course will help increase students’ mathematical sophistication and their ability to handle abstract problems.
|
3 |
| PHYS-212 |
University Physics II
This course is a continuation of PHYS-211, University Physics I. Topics include electrostatics, Gauss' law, electric field and potential, capacitance, resistance, DC circuits, magnetic field, Ampere's law, inductance, and geometrical and physical optics. The course is taught in a lecture/workshop format that integrates the material traditionally found in separate lecture and laboratory courses.
|
4 |
| EGEN-099 |
Engineering Co-op Preparation
This course will prepare students, who are entering their second year of study, for both the job search and employment in the field of engineering. Students will learn strategies for conducting a successful job search, including the preparation of resumes and cover letters; behavioral interviewing techniques and effective use of social media in the application process. Professional and ethical responsibilities during the job search and for co-op and subsequent professional experiences will be discussed.
|
0 |
| CMPE-260 |
Digital System Design II
This course presents modern approaches to the design, modeling and testing of digital system. Topics covered are: VHDL and Verilog HDL as hardware description languages (HDLs), simulation techniques, design synthesis, verification methods, and implementation with field programmable gate arrays (FPGAs). Combinational and both the synchronous and asynchronous sequential circuits are studied. Testing and design for testability techniques are emphasized and fault tolerant and fail safe design concepts are introduced. Laboratory projects that enable students gain hands-on experience are required. The projects include complete design flow: design of the system, modeling using HDLs, simulation, synthesis and verification.
|
4 |
| MATH-231 |
Differential Equations
This course is an introduction to the study of ordinary differential equations and their applications. Topics include solutions to first order equations and linear second order equations, method of undetermined coefficients, variation of parameters, linear independence and the Wronskian, vibrating systems, and Laplace transforms.
|
3 |
| MATH-241 |
Linear Algebra
This course is an introduction to the basic concepts of linear algebra, and techniques of matrix manipulation. Topics include linear transformations, Gaussian elimination, matrix arithmetic, determinants, vector spaces, linear independence, basis, null space, row space, and column space of a matrix, eigenvalues, eigenvectors, change of basis, similarity and diagonalization. Various applications are studied throughout the course.
|
3 |
| EEEE-281 |
Circuits I
Covers basics of DC circuit analysis starting with the definition of voltage, current, resistance, power and energy. Linearity and superposition, together with Kirchhoff's laws, are applied to analysis of circuits having series, parallel and other combinations of circuit elements. Thevenin, Norton and maximum power transfer theorems are proved and applied. Circuits with ideal op-amps are introduced. Inductance and capacitance are introduced and the transient response of RL, RC and RLC circuits to step inputs is established. Practical aspects of the properties of passive devices and batteries are discussed, as are the characteristics of battery-powered circuitry. The laboratory component incorporates use of both computer and manually controlled instrumentation including power supplies, signal generators and oscilloscopes to reinforce concepts discussed in class as well as circuit design and simulation software.
|
3 |
| General Education – Ethical Perspective | 3 | |
| Third Year | ||
| CMPE-350 |
Computer Organization
The course covers the important aspects of the design, organization, and performance evaluation of modern computer systems. Topics include computer performance measures, instruction set architecture classification, input/output organization, CPU datapath and control unit design, microprogramming, arithmetic and logic unit design, and the memory hierarchy, including cache levels and virtual memory.
|
3 |
| CMPE-380 |
Applied Programming in C
This course uses the C language to implement algorithms used in the numerical solution of common problems encountered in science and engineering. Topics include an introduction to C, computer number representation and roundoff error, algorithms for finding roots of nonlinear equations, interpolation, threading, software security, numerical differentiation and integration, function approximation and data fitting solutions to systems of linear equations, and general matrix manipulation.
|
3 |
| EEEE-380 |
Digital Electronics
This is an introductory course in digital MOS circuit analysis and design. The course covers the following topics: (1) MOSFET I-V behavior in aggressively scaled devices; (2) Static and dynamic characteristics of NMOS and CMOS inverters; (3) Combinational and sequential logic networks using CMOS technology; (4) Dynamic CMOS logic networks, including precharge-evaluate, domino and transmission gate circuits; (5) Special topics, including static and dynamic MOS memory, and interconnect RLC behavior.
|
3 |
| EEEE-282 |
Circuits II
This course covers the fundamentals of AC circuit analysis starting with the study of sinusoidal steady-state solutions for circuits in the time domain. The complex plane is introduced along with the concepts of complex exponential functions, phasors, impedances and admittances. Nodal, loop and mesh methods of analysis as well as Thevenin and related theorems are applied to the complex plane. The concept of complex power is developed. The analysis of mutual induction as applied to coupled-coils. Linear, ideal and non-ideal transformers are introduced. Complex frequency analysis is introduced to enable discussion of transfer functions, frequency dependent behavior, Bode plots, resonance phenomenon and simple filter circuits. Two-port network theory is developed and applied to circuits and interconnections.
|
3 |
| CMPE-361 |
Introduction to Hardware Security (CMPE Option Core)
The objective of this course is to build the knowledge and skills necessary to design, evaluate, and implement secure hardware systems. Course topics will span the fundamentals of hardware security and trust, which may include security principles and properties, encryption/decryption, side-channel attacks, hardware manufacture and test, physically uncloneable functions (PUF), true random number generation, hardware trojan detection, secure system design, and trusted execution environments. Laboratory assignments and projects facilitate the hands-on learning of course topics including cryptographic hardware design, side-channel attacks, integrated circuit test and verification, PUFs, true random number generation, and secure system design using a field programmable gate array (FPGA) and an embedded processor as an implementation platform.
|
3 |
| CMPE-499 | Co-op | 0 |
| Fourth Year | ||
| CMPE-550 |
Computer Architecture
The course covers various aspects of advanced uniprocessor computer architecture design. Instruction set architecture design alternatives are discussed with emphasis on the Reduced Instruction Set Computer (RISC) architecture. Techniques to enhance CPU performance such as pipelined execution optimizations, conditional branch handling techniques, exploitation of instruction-level parallelism, multiple-instruction issue, and dynamic scheduling are studied. Cache, and memory hierarchy design and performance issues are also presented. The design aspects of efficient and reliable input/output systems are also covered. The course concludes with an introduction to concepts of multiprocessor systems design.
|
3 |
| CMPE-480 |
Digital Signal Processing
This course introduces the basic elements of continuous and discrete time signals and systems and fundamental signal processing techniques, such as FIR and IIR Filtering, the Fourier transform, the Discrete Fourier transform and the z transform. Theory is strengthened through MATLAB-based projects and exercises.
|
3 |
| CMPE-460 |
Interface and Digital Electronics
This course covers various sensors, motors, and signal conditioning circuits, including amplification, filtering, level shifting, ADC, and DAC. Modern tools, such as Arm Keil MDK and PSpice, are used to simulate and debug modern microcontrollers, such as TI Arm-based MSP, analog active filters, and operational amplifier application circuits. Students typically work in teams of two to design a complete data acquisition system from sensors, amplification, filtering, ADC, and DAC to analog signals through either wired or wireless transmission circuits.
|
4 |
| MATH-251 |
Probability and Statistics
This course introduces sample spaces and events, axioms of probability, counting techniques, conditional probability and independence, distributions of discrete and continuous random variables, joint distributions (discrete and continuous), the central limit theorem, descriptive statistics, interval estimation, and applications of probability and statistics to real-world problems. A statistical package such as Minitab or R is used for data analysis and statistical applications.
|
3 |
| CMPE-499 | Co-op | 0 |
| General Education – Immersion (1) | 3 | |
| Fifth Year | ||
| EGEN-497 |
Multidisciplinary Senior Design 1
This is the first in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/ implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| CMPE-570 |
Data and Communication Networks
This course gives an overview of the technologies, architectures, and protocols used to build various types of computer and communication networks. The course emphasizes various network design problems and solution approaches. Specific issues covered include framing and coding, error detection, multiple access control, addressing, routing, flow and congestion control, scheduling, and switching.
|
3 |
| EGEN-498 |
Multidisciplinary Senior Design 2
This is the second in a two-course sequence oriented to the solution of real-world engineering design problems. This is a capstone learning experience that integrates engineering theory, principles, and processes within a collaborative environment. Multidisciplinary student teams follow a systems engineering design process, which includes assessing customer needs, developing engineering specifications, generating and evaluating concepts, choosing an approach, developing the details of the design, and implementing the design to the extent feasible, for example by building and testing a prototype or implementing a chosen set of improvements to a process. This first course focuses primarily on defining the problem and developing the design, but may include elements of build/implementation. The second course may include elements of design, but focuses on build/implementation and communicating information about the final design.
|
3 |
| CMPE Professional Elective | 3 | |
| CMPE Option Elective 1 | 3 | |
| General Education – Immersion (2) | 3 | |
| CMPE Option Elective 2 | 3 | |
| Open Elective | 3 | |
| General Education – Global Perspective | 3 | |
| General Education – Immersion (3) | 3 | |
* (WI) refers to a writing-intensive course within the major.
Notes
All students are required to complete 1 x Writing Intensive and 1 x Islamic Culture course.
CMPE Professional Elective: By default, CMPE Professional Electives are approved CMPE courses 500 level and above.
CMPE Option Elective: By default, CMPE Option Electives are courses selected from a published list of approved courses.
Professional Elective Courses
- CMPE-361 Introduction To Hardware Security
- CMPE-371 Introduction to Generative AI
- CMPE-540 Control Systems
- CMPE-663 Real-time & Embedded Systems
- CMPE-665 Perf Eng. of RT and Embed Sys.
- CMPE-675 Robotics: Emb./Auto. Systems
- CMPE-677 Machine Intelligence
- CMPE-679 Deep Learning
- CMPE-680 Dip Image Proc Algorithm
- CMPE-685 Computer Vision
- CMPE-757 Quantum Computing
- CMPE-770 Wireless Networks
- CMPE-788 ML for Cybersecurity Analytics
Special Topics
- CMPE-789 Advanced Networking
- CMPE-789 Wireless Communication
- CMPE-789 Applied Dig Sig Process
- CMPE-789 Cognitive Radios and Networks
To graduate, students need to complete all the requirements as listed in the curriculum graduation policy
Advisory Board
|
Mr. Eyad Shihabi |
Mr. Taha Khalifa |
|
Mr. Khalid Al Naqbi |
Mr. Ghanim Al Falasi |
|
Mr. Omar Janahi |
Mr. Bashar Kilani |
|
Ms. Hannah Shibu |
Dr. Tareg Ghaoud |
|
Dr. Tarek Taha |
Mr. Ankur Saraswat |
|
Mr. Sarmad Najim |
Program Laboratories
Point of contact
Point of contact
TDRA-ICTFUND Digital Transformation Lab
Point of contact
